package cmd // Package cmd  命令行解析框架，仿造c++的（getopt.h）

const (
	NoArgument = iota
	RequireArgument
	OptionalArgument
)



// Option 替代c语言标准库 option结构体
type Option struct {
	 Name    string //表示的是长参数名
	 HasFlag int //有3个值:NoArgument,RequireArgument,OptionalArgument
	 Flag    *int //用来决定，getopt_long()的返回值到底是什么。如果这个指针为NULL，
	             // 那么getopt_long()返回该结构val字段中的数值。如果该指针不为NULL，
	             //getopt_long()会使得它所指向的变量中 填入val字段中的数值，
	             //并且getopt_long()返回0。如果flag不是NULL，但未发现长选项，
	             //那么它所指向的变量的数值不变。
	 Val int    //和flag联合决定返回值 这个值是发现了长选项时的返回值，
	 			// 或者flag不是 NULL时载入*flag中的值。典型情况下，若flag不是NULL，
	 			//那么val是个真／假值，譬如1 或0；另一方 面，如 果flag是NULL
	 			//那么val通常是字符常量，若长选项与短选项一致，那么该字符常量应该与optstring中出现的这个选项的参数相同。
}




func (receiver Option) GetOptLong() {

}
